El proceso de arranque de Linux es una secuencia compleja y fascinante que transforma un ordenador apagado en un sistema operativo completamente funcional:
1. ENCENDIDO Y POST
• La fuente de alimentación envía energía a la motherboard
• La CPU ejecuta la primera instrucción desde una dirección predefinida
• POST (Power-On Self-Test): Verifica componentes básicos (RAM, CPU, dispositivos)
• Se ejecuta desde ROM/Flash integrada en la motherboard
• Duración típica: 2-10 segundos
2. FIRMWARE (BIOS/UEFI)
BIOS (Legacy):
• Busca el Master Boot Record (MBR) en el primer sector del disco
• Limitado a particiones de 2TB y máximo 4 particiones primarias
• Ejecuta código de arranque de 446 bytes
UEFI (Moderno):
• Busca en la partición EFI System Partition (ESP) con formato FAT32
• Soporte para discos >2TB con tabla de particiones GPT
• Secure Boot: Verifica firmas digitales de bootloaders
• Interfaz gráfica y soporte para mouse
3. GESTOR DE ARRANQUE (BOOTLOADER)
GRUB2 (GNU GRand Unified Bootloader):
• Etapa 1: Código minimal que carga la Etapa 2
• Etapa 2: Interfaz completa con menú de opciones
• Lee configuración desde /boot/grub/grub.cfg
• Puede cargar múltiples sistemas operativos (dual-boot)
• Soporte para sistemas de archivos ext4, Btrfs, XFS
Proceso del bootloader:
• Muestra menú con opciones de kernel
• Carga el kernel Linux en memoria RAM
• Carga initramfs (sistema de archivos inicial en RAM)
• Pasa parámetros de arranque al kernel
4. CARGA DEL KERNEL LINUX
• Descompresión: El kernel comprimido se descomprime en memoria
• Inicialización de hardware: Detecta y configura CPU, memoria, dispositivos
• Montaje de initramfs: Sistema de archivos temporal con drivers esenciales
• Detección de hardware: Carga módulos del kernel necesarios
• Montaje del sistema de archivos raíz: Cambia de initramfs al sistema real
• Preparación del entorno: Configura tablas de memoria virtual, interrupciones
5. SISTEMA INIT (systemd)
• Primer proceso: PID 1, padre de todos los procesos
• Targets de systemd:
- emergency.target: Modo de emergencia
- rescue.target: Modo monousuario
- multi-user.target: Modo multiusuario sin GUI
- graphical.target: Modo multiusuario con GUI
• Servicios paralelos: Inicia servicios de forma concurrente
• Socket activation: Inicia servicios bajo demanda
• Gestión de logs: systemd-journald para logging centralizado
6. SERVICIOS DEL SISTEMA
• udev: Gestión dinámica de dispositivos (/dev)
• NetworkManager: Configuración de red
• D-Bus: Sistema de comunicación entre procesos
• Display Manager: GDM, SDDM, LightDM (para entornos gráficos)
• Cron/systemd-timers: Tareas programadas
• SSH daemon: Acceso remoto seguro
7. ENTORNO DE USUARIO
• Display Manager: Pantalla de login gráfica
• Desktop Environment: GNOME, KDE, XFCE, etc.
• Window Manager: Gestión de ventanas (X11/Wayland)
• Shell de usuario: Bash, Zsh, Fish
• Aplicaciones de usuario: Autostart de aplicaciones configuradas
Tiempo total típico: 15-45 segundos dependiendo del hardware y configuración.